package com.ruoyi.system.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 工程师FSE计划详情 工程师FSE计划详情（服务通知子）对象 st_service_details
 * 
 * @author shihx
 * @date 2020-03-07
 */
@ApiModel(value="ServiceDetails",description="工程师FSE计划详情实体") // 用来描述封装的参数对象与返回的参数对象
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ServiceDetails extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty(value = "主键",name="id",required = true,dataType="Long",example="主键")
    private Long id;

    /** 服务派单主键ID */
    @Excel(name = "服务派单主键ID")
    @ApiModelProperty(value = "服务派单主键ID",name="serviceNoticeId",required = true,dataType="Long",example="服务派单主键ID")
    private Long serviceNoticeId;

    /** 服务通知号（服务通知主键） */
    @Excel(name = "服务通知号", readConverterExp = "服=务通知主键")
    @ApiModelProperty(value = "服务通知号",name="serviceNo",required = true,dataType="String",example="服务通知号")
    private String serviceNo;

    /** 工程师FSE的主键ID */
    @Excel(name = "工程师FSE的主键ID")
    @ApiModelProperty(value = "工程师FSE的主键ID",name="fseId",required = true,dataType="String",example="工程师FSE的主键ID")
    private String fseId;

    /** 工程师姓名 */
    @Excel(name = "工程师姓名")
    @ApiModelProperty(value = "工程师姓名",name="fseName",required = true,dataType="String",example="工程师姓名")
    private String fseName;

    /** 手机唯一表示用于推送 */
    @Excel(name = "手机唯一表示用于推送")
    @ApiModelProperty(value = "手机唯一表示用于推送",name="phoneUuid",required = true,dataType="String",example="手机唯一表示用于推送")
    private String phoneUuid;

    /** 默认0待接受，1已接受，2已签到，3已签离，4已完成,5自动签离 */
    @Excel(name = "默认0待接受，1已接受，2已签到，3已签离，4已完成,5自动签离，6已拒绝")
    @ApiModelProperty(value = "默认0待接受，1已接受，2已签到，3已签离，4已完成,5自动签离，6已拒绝",name="state",required = true,dataType="String",example="默认0待接受，1已接受，2已签到，3已签离，4已完成,5自动签离，6已拒绝")
    private Long state;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;


    /** 拒绝理由 */
    @Excel(name = "拒绝理由")
    @ApiModelProperty(value = "拒绝理由",name="refusalReasons",required = true,dataType="String",example="拒绝理由")
    private String refusalReasons;

    /** 服务角色 1现场服务 2实习 */
    @ApiModelProperty(value = "服务角色 1现场服务 2实习",name="serviceRole",required = true,dataType="String",example="服务角色 1现场服务 2实习")
    private String serviceRole;

    /** 服务单各种状态的数量 */
    private String stateCount;


    /** 服务角色 1现场服务 2实习 */
    @ApiModelProperty(value = "派单id",name="teamleaderId",required = true,dataType="String",example="服务角色 1现场服务 2实习")
    private String teamleaderId;


    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date sendTime;


    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setServiceNoticeId(Long serviceNoticeId) 
    {
        this.serviceNoticeId = serviceNoticeId;
    }

    public Long getServiceNoticeId() 
    {
        return serviceNoticeId;
    }
    public void setServiceNo(String serviceNo) 
    {
        this.serviceNo = serviceNo;
    }

    public String getServiceNo() 
    {
        return serviceNo;
    }
    public void setFseId(String fseId) 
    {
        this.fseId = fseId;
    }

    public String getFseId() 
    {
        return fseId;
    }
    public void setFseName(String fseName) 
    {
        this.fseName = fseName;
    }

    public String getFseName() 
    {
        return fseName;
    }
    public void setPhoneUuid(String phoneUuid) 
    {
        this.phoneUuid = phoneUuid;
    }

    public String getPhoneUuid() 
    {
        return phoneUuid;
    }
    public void setState(Long state) 
    {
        this.state = state;
    }

    public Long getState() 
    {
        return state;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public String getRefusalReasons() {
        return refusalReasons;
    }

    public void setRefusalReasons(String refusalReasons) {
        this.refusalReasons = refusalReasons;
    }

    public String getServiceRole() {
        return serviceRole;
    }

    public void setServiceRole(String serviceRole) {
        this.serviceRole = serviceRole;
    }

    public String getStateCount() {
        return stateCount;
    }

    public void setStateCount(String stateCount) {
        this.stateCount = stateCount;
    }

    public String getTeamleaderId() {
        return teamleaderId;
    }

    public void setTeamleaderId(String teamleaderId) {
        this.teamleaderId = teamleaderId;
    }

    public Date getSendTime() {
        return sendTime;
    }

    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("serviceNoticeId", getServiceNoticeId())
            .append("serviceNo", getServiceNo())
            .append("fseId", getFseId())
            .append("fseName", getFseName())
            .append("phoneUuid", getPhoneUuid())
            .append("state", getState())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
                .append("teamleaderId", this.getTeamleaderId())
                .append("sendTime",this.getSendTime())
            .toString();
    }
}
